/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ConexionSQL;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author Alvin
 */
public class ConexionSQL {
    private static ConexionSQL instancia = null;
    private static String base, usuario, contra;
    private Connection conexion;
    private Statement sentencia;

    private ConexionSQL(String base, String usuario,String contra)
            throws ClassNotFoundException {
        //Cargando driver de la conexion
        Class.forName("com.mysql.jdbc.Driver");
        //Inicializa los datos
        ConexionSQL.base=base;
        ConexionSQL.usuario=usuario;
        ConexionSQL.contra=contra;
    }

    public static ConexionSQL getInstancia(String base,
            String usuario,String contra) throws ClassNotFoundException {
        if(instancia==null)
            instancia=new ConexionSQL(base,usuario,contra);
        else{
            ConexionSQL.base=base;
            ConexionSQL.usuario=usuario;
            ConexionSQL.contra=contra;
        }
        return instancia;
    }

    public boolean abrir() {
       // Conector/ruta y puerto/bd
        String url="jdbc:mysql://127.0.0.1:3306/"+base;
        try{
            conexion=DriverManager.getConnection(url, usuario, contra);
            sentencia=conexion.createStatement();
            return true;
        }catch(SQLException ex){
            //Imprime los errores en un ambiente de prueba
            ex.printStackTrace();
            return false;
        }
    }

    @Override
    protected void finalize() throws Throwable {
        //Cuando la clase deje de utilizarse se cierra la conexion
        sentencia.close();
        conexion.close();
        super.finalize();
    }


    public Statement getSentencia() {
        return sentencia;
    }
}
